package com.kerrykidz.scminvoicing.service;

import java.util.List;
















import org.apache.ibatis.annotations.Param;

import com.kerrykidz.scminvoicing.dao.model.GblScmPrdEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmPurOrderEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmPurordPrdEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmSupAgmEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmSupEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmSupPrdEntity;
import com.rdp.framework.exception.RDPException;

public interface IScmPurOrderService {

	/**
	 * 采购订单 列表
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月7日 下午5:36:53
	 */
	public List<ScmPurOrderEntity> findScmPurOrderEntityList(ScmPurOrderEntity scmPurOrder) throws RDPException; 
	
	
	/**
	 * 根据采购订单编号,查询采购订单商品 明细 数据
		 * @Description   
		 * List<ScmPurordPrdEntity>
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	List<ScmPurordPrdEntity>  findPurOrderPrdListByOrderId(String fkPurordId);
	/**
	 * 根据主键id，获得采购订单信息
		 * @Description   
		 * ScmPurOrderEntity
		 * @author chenyu
		 * 2014年9月7日 下午5:36:53
	 */
	public ScmPurOrderEntity getScmPurOrderById(String pkPurordId);
	
	/**
	 * 新增 采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:49:15
	 */
	void addScmPurOrder(ScmPurOrderEntity scmPurOrder); 
	
	/**
	 * 修改采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:50:00
	 */
	void updateScmPurOrder(ScmPurOrderEntity scmPurOrder); 
	
	/**
	 * 根据采购订单编号，供应商编号。查询采购订单商品 明细 数据
		 * @Description   
		 * List<ScmPurordPrdEntity>
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	List<ScmPurordPrdEntity>  findPurOrderPrdByOrderId( String fkPurordId,String supplyId);
	
	/**
	 * 
	 * @Description 批量新增 采购订单商品 明细表 数据
	 * @param scmPurordPrdList
	 * @author chenyu
	 * @date 2014年09月09日下午4:39:23
	 */
	void addPurOrderPrdBatch(@Param("purOrderPrds") List<ScmPurordPrdEntity> scmPurordPrdList);
	
	
	/**
	 * 
	 * @Description 新增 采购订单商品 明细表 数据
	 * @param scmPurordPrdEntity
	 * @author chenyu
	 * @date 2014年09月09日下午4:39:23
	 */
	void insertPurOrderPrd(ScmPurordPrdEntity scmPurordPrdEntity) throws RDPException;
	
	/**
	 * 根据采购订单编号。删除采购订单商品 明细 数据
		* @param fkPurordId
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	void delPurOrderPrdByOrderId( String fkPurordId) throws RDPException;
	
	/**
	 * 根据采购订单编号,商品编号。删除采购订单商品 明细 数据
		* @param fkPurordId,  fkPrdId
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	void delPurOrderPrdByOrderIdAndPrdId( String fkPurordId,String fkPrdId) throws RDPException;
	
	/**
	 * 根据采购订单编号,商品编号。查询采购订单商品 明细 数据
		* @param fkPurordId,  fkPrdId
		 * @author chenyu
		 * 2014年9月9日 下午2:43:32
	 */
	ScmPurordPrdEntity getPurOrderPrdByOrderIdAndPrdId(String fkPurordId,
			 String fkPrdId);
	
	/**
	 * 根据商品Id，获取该商品的供应商下拉框列表
		 * @Description   
		 * List<ScmSupEntity>
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	List<ScmSupEntity> PurOrderSupplyListBySprdId(String sprdId);
	
	/**
	 * 获取该商品的供应商下拉框列表
		 * @Description   
		 * List<ScmSupEntity>
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	List<ScmSupEntity> PurOrderSupplyList(String fkBranId);
	
	
	/**
	 * 根据商品Id,供应商id，获取该商品的供应商及协议 
		 * @Description   
		 *  ScmSupEntity 
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	 ScmSupEntity  PurOrderSupplyBySprdIdandSupId( String pkSupId,String sprdId);
	
	/**
	 * 根据商品Id， 获取当前最近有效的供应商的协议信息 列表
		 * @Description   
		 * List<ScmSupAgmEntity>
		 * @author chenyu
		 * 2014年9月11日 下午6:12:26
	 */
	List<ScmSupAgmEntity> findsupAgmListbyPrdId(String fkPrdId);
	
	/**
	 * 
	*
	* @Title: findProductListJoinOrderPrd
	* @Description: <p>根据采购订单商品关联 商品表， 查询所有的商品信息<p>
	* @param: <p>@param entity
	* @param: <p>@return
	* @param: <p>@throws RDPException<p>
	* @date: 2014年9月14日
	* @return: List<GblScmPrdEntity>
	* @throws 
	*
	 */
	public List<GblScmPrdEntity> findProductListJoinOrderPrd(GblScmPrdEntity entity)throws  RDPException;
	
	/**
	 * 根据采购订单id，删除采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月14日 下午9:17:06
	 */
	void delPurOrderByOrderId(String pkPurordId);
	
	/**
	 * 
	* @Description: <p>根据采购订单编号，门店编号。查询可用的商品 数据<p>
	* @param: <p>@param fksupplyId ,fkBranId
	* @param: <p>@return
	* @param: <p>@throws RDPException<p>
	* @date: 2014年9月14日
	* @return: List<ScmSupPrdEntity>
	* @throws 
	*
	 */
	public List<ScmSupPrdEntity> getPurOrderPrdBySupId(String fkPurordId,String fksupplyId,String fkBranId)throws  RDPException;

	/**
	 * 根据 供应商编号，查询有效的供应商信息
		 * @Description   
		 * ScmSupEntity
		 * @author chenyu
		 * 2014年9月19日 下午6:22:07
	 */
	ScmSupEntity getScmSupBysupId(String pkPurordId);
}
